/** category业务模块接口整合 */
import base from "./base"; // 导入接口域名列表
import axios from "../http"; // 导入http中创建的axios实例
import qs from "qs"; // 根据需求是否导入qs模块

let PMS_BASEURL = base.PMS_BASEURL;

const categoryApi = {
  /**
   * 根据类别ID，查询类别详情
   * @param {Object} params 封装类别ID信息。例如： {id: 1}
   */
  queryById(id) {
    return axios.get(`${PMS_BASEURL}/pms/categories/${id}`);
  },

  /**
   * 根据品牌id查询类别列表接口
   * @param {Object} params 查询品牌所需参数对象，
   *        例如：{brandId:品牌ID}
   * @returns {Promise}
   */
  queryByBrandId(params) {
    return axios({
      url: `${PMS_BASEURL}/pms/categories/list-by-brand`,
      method: "GET",
      params,
    });
  },

  /**
   * 根据父级类别id查询子级类别列表接口
   * @param {Object} params 查询类别所需参数对象，
   *  例如：{parentId:父类类别ID, page:页码, sizeNum:每页记录数}
   * @returns {Promise}
   */
  queryByParent(params) {
    return axios({
      url: `${PMS_BASEURL}/pms/categories/list-by-parent`,
      method: "GET",
      params,
    });
  },

  /**
   * 更新类别接口
   * @param {Object} params 待更新的类别对象，详见接口文档。
   * @returns {Promise}
   */
  update(params) {
    return axios.post(
      `${PMS_BASEURL}/pms/categories/${params.id}/full-info/update`,
      qs.stringify(params)
    );
  },

  /**
   * 更新类别, 启用类别接口
   * @param {Object} params 包含类别ID的类别对象
   * @returns {Promise}
   */
  enable(params) {
    return axios.post(
      `${PMS_BASEURL}/pms/categories/${params.id}/status/enable`,
      qs.stringify(params)
    );
  },

  /**
   * 更新类别, 禁用类别接口
   * @param {Object} params 包含类别ID的类别对象
   * @returns {Promise}
   */
  disable(params) {
    return axios.post(
      `${PMS_BASEURL}/pms/categories/${params.id}/status/disable`,
      qs.stringify(params)
    );
  },

  /**
   * 更新类别, 显示类别接口
   * @param {Object} params 包含类别ID的类别对象
   * @returns {Promise}
   */
  show(params) {
    return axios.post(
      `${PMS_BASEURL}/pms/categories/${params.id}/status/show`,
      qs.stringify(params)
    );
  },

  /**
   * 更新类别, 隐藏类别接口
   * @param {Object} params 包含类别ID的类别对象
   * @returns {Promise}
   */
  hide(params) {
    return axios.post(
      `${PMS_BASEURL}/pms/categories/${params.id}/status/hide`,
      qs.stringify(params)
    );
  },

  /**
   * 删除类别接口
   * @param {Object} params 包含待删除的类别ID的参数对象，例如： {id: 类别ID}
   * @returns {Promise}
   */
  delete(params) {
    return axios.post(`${PMS_BASEURL}/pms/categories/${params.id}/delete`);
  },

  /**
   * 添加类别接口
   * @param {Object} params 待添加的类别对象，详见接口文档。
   * @returns  {Promise}
   */
  add(params) {
    return axios.post(`${PMS_BASEURL}/pms/categories/addnew`, qs.stringify(params));
  },



  /**
   * 重建缓存
   * @returns  {Promise}
   */
  rebuildCache() {
    return axios.post(`${PMS_BASEURL}/pms/categories/rebuild-cache`);
  },
};

export default categoryApi;
